Custom Control এবং User Control তৈরি

Microsoft Technologies - ডব্লিউপিএফ (WPF) - Control Templates এবং Customization
221

WPF (Windows Presentation Foundation) অ্যাপ্লিকেশন তৈরি করার সময়, কখনো কখনো আপনাকে কাস্টম কন্ট্রোল (Custom Control) অথবা ইউজার কন্ট্রোল (User Control) তৈরি করতে হতে পারে, যা স্ট্যান্ডার্ড কন্ট্রোলগুলোর চেয়ে আরও কাস্টমাইজড এবং ফিচার সমৃদ্ধ হয়। WPF তে Custom Control এবং User Control এর মধ্যে পার্থক্য রয়েছে, এবং এগুলো বিভিন্ন পরিস্থিতিতে ব্যবহৃত হয়।

এখানে Custom Control এবং User Control তৈরি করার প্রক্রিয়া ও তাদের মধ্যে পার্থক্য আলোচনা করা হবে।


Custom Control

Custom Control হলো এমন একটি কন্ট্রোল যা WPF ফ্রেমওয়ার্কের বেস কন্ট্রোল (যেমন Button, TextBox ইত্যাদি) থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয় এবং যার মধ্যে আপনি কাস্টম লোগিক, স্টাইল, বা আচরণ যোগ করতে পারেন। Custom Control সাধারণত Control ক্লাস থেকে ইনহেরিট করা হয় এবং UI কন্ট্রোলের সম্পূর্ণ কাস্টম ডিজাইন করতে আপনাকে একটি কাস্টম টেমপ্লেট ও স্টাইল প্রদান করতে হয়।

Custom Control তৈরি করার ধাপ:

  1. প্রজেক্ট তৈরি করা:
    Visual Studio তে একটি নতুন WPF Custom Control Library প্রজেক্ট তৈরি করুন।
  2. Custom Control কোড লেখা:
    Custom Control তৈরি করতে, আপনি Control ক্লাসকে ইনহেরিট করবেন এবং এর মধ্যে কাস্টম লজিক এবং UI টেমপ্লেট যুক্ত করবেন।
  3. Control Template এবং Style:
    Custom Control এর জন্য ControlTemplate এবং Style XAML এ ডিজাইন করতে হবে।

Custom Control উদাহরণ:

  1. CustomControl.xaml.cs (C# কোড):
using System.Windows;
using System.Windows.Controls;

namespace WPFApplication
{
    public class MyCustomButton : Control
    {
        static MyCustomButton()
        {
            // Default style for MyCustomButton
            DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomButton), new FrameworkPropertyMetadata(typeof(MyCustomButton)));
        }

        public MyCustomButton()
        {
            // Custom logic here if needed
        }
    }
}
  1. Themes/Generic.xaml (Control Template):
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="local:MyCustomButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:MyCustomButton">
                    <Button Content="Custom Button" Background="LightBlue" Padding="10"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>
  1. MainWindow.xaml (Using Custom Control):
<Window x:Class="WPFApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WPFApplication"
        Title="Custom Control Example" Height="350" Width="525">
    <Grid>
        <local:MyCustomButton Width="200" Height="50"/>
    </Grid>
</Window>

এখানে:

  • MyCustomButton একটি কাস্টম কন্ট্রোল তৈরি করা হয়েছে, যা Control ক্লাস থেকে ইনহেরিট করা হয়েছে।
  • ControlTemplate ব্যবহার করে কাস্টম স্টাইল এবং UI ডিজাইন করা হয়েছে।

User Control

User Control হলো একটি কাস্টম UI উপাদান, যা একাধিক স্ট্যান্ডার্ড কন্ট্রোলের সমন্বয়ে তৈরি হয়। এটি একটি UI কন্ট্রোল হিসেবে ব্যবহার করা হয় এবং সাধারণত UserControl ক্লাস থেকে ইনহেরিট করা হয়। User Control ব্যবহার করে আপনি কমপ্লেক্স UI উপাদান তৈরি করতে পারেন যা পুনঃব্যবহারযোগ্য হয়।

User Control তৈরি করার ধাপ:

  1. প্রজেক্ট তৈরি করা:
    Visual Studio তে একটি নতুন WPF Application তৈরি করুন।
  2. User Control তৈরি করা:
    Visual Studio তে User Control তৈরি করতে, আপনাকে UserControl.xaml ফাইল তৈরি করতে হবে, যেখানে UI উপাদানগুলি ডিজাইন করা হবে।

User Control উদাহরণ:

  1. MyUserControl.xaml:
<UserControl x:Class="WPFApplication.MyUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Width="300" Height="150">
    <Grid>
        <TextBox Name="MyTextBox" Width="200" Height="30" Margin="10"/>
        <Button Content="Submit" Width="100" Height="30" Margin="10,50,10,10"/>
    </Grid>
</UserControl>
  1. MyUserControl.xaml.cs (C# কোড):
using System.Windows;
using System.Windows.Controls;

namespace WPFApplication
{
    public partial class MyUserControl : UserControl
    {
        public MyUserControl()
        {
            InitializeComponent();
        }
    }
}
  1. MainWindow.xaml (Using User Control):
<Window x:Class="WPFApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WPFApplication"
        Title="User Control Example" Height="350" Width="525">
    <Grid>
        <local:MyUserControl/>
    </Grid>
</Window>

এখানে:

  • MyUserControl একটি কাস্টম UI উপাদান তৈরি করা হয়েছে, যা TextBox এবং Button কন্ট্রোলের সমন্বয়ে তৈরি।
  • MainWindow.xamlMyUserControl ব্যবহার করা হয়েছে।

Custom Control এবং User Control এর মধ্যে পার্থক্য (Differences Between Custom Control and User Control)

FeatureCustom ControlUser Control
Base ClassControl ক্লাস থেকে ইনহেরিট করা হয়UserControl ক্লাস থেকে ইনহেরিট করা হয়
UI DefinitionControlTemplate ব্যবহার করে UI কাস্টমাইজ করা হয়XAML ফাইলে UI উপাদানগুলি সরাসরি ডিজাইন করা হয়
Use CaseUI উপাদানগুলি যেগুলি আরও কাস্টমাইজড এবং স্টাইলড হতে পারেএকাধিক স্ট্যান্ডার্ড কন্ট্রোলের সমন্বয়ে কাস্টম UI তৈরি করা
InheritanceControl এবং এর টেমপ্লেট ব্যবহার করা হয়XAML এ UI উপাদান সরাসরি যুক্ত করা হয়
Customizationসম্পূর্ণ কাস্টম ডিজাইন এবং লোগিক ব্যবহার করা হয়UI এলিমেন্টগুলোর মধ্যে কম কাস্টমাইজেশন
Performanceসাধারণত বেশি পারফরম্যান্স, কারণ স্টাইল ও টেমপ্লেট স্বতন্ত্র হয়কিছুটা কম পারফরম্যান্স হতে পারে যদি UI জটিল হয়

সারাংশ (Summary)

  • Custom Control এবং User Control উভয়ই WPF অ্যাপ্লিকেশনে কাস্টম UI তৈরি করতে ব্যবহৃত হয়, তবে Custom Control বেশি কাস্টমাইজেবল এবং রিইউজেবল, যেখানে User Control সাধারণত একাধিক UI উপাদানকে একত্রিত করে একটি কাস্টম UI উপাদান তৈরি করে।
  • Custom Control এ সাধারণত ControlTemplate এবং Style ব্যবহার করে UI কাস্টমাইজ করা হয়, কিন্তু User Control তে সরাসরি UI ডিজাইন করা হয়।
  • Custom Control মূলত স্ট্যান্ডার্ড কন্ট্রোলের কার্যকারিতা সম্প্রসারণ করার জন্য ব্যবহৃত হয়, তবে User Control ছোট আকারের কাস্টম UI এলিমেন্ট তৈরিতে সহায়ক।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...